package cn.fl.capital.transform;

import java.util.ArrayList;
import java.util.List;

import cn.fl.capital.dto.CapAdvFundDTO;
import cn.fl.capital.vo.CapAdvFundVO;
import cn.cmm.base.framework.utils.CollectionUtils;

 /**
 * @Description: 垫款资金流水表 转换器
 * VO是客户端传递数据到服务端进行转换的数据 
 * VO转换数据变成DTO传递到服务端 
 * VO不能在服务端出现
 */
public class CapAdvFundVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto CapAdvFundDTO
	 * @return CapAdvFundVO
	 */
	public static CapAdvFundVO toVO(CapAdvFundDTO dto) {
		CapAdvFundVO  vo = null;
		if (dto != null) { 
			vo = new CapAdvFundVO();
			vo.setId(dto.getId());
			vo.setCode(dto.getCode());//资金编号（x） 垫款（DK+ID）冲销（HB+ID）
			vo.setBatchId(dto.getBatchId());//批次号（流水号）
			vo.setCstId(dto.getCstId());//客户ID
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setPayAmt(dto.getPayAmt());//金额
			vo.setPayBkId(dto.getPayBkId());//付款银行账户ID(SYS_BK_ACC_INFO表ID、BANK_ACC_INFO表ID)
			vo.setPayAccNo(dto.getPayAccNo());//付款账号
			vo.setPayAccNm(dto.getPayAccNm());//付款账户
			vo.setPayBkNm(dto.getPayBkNm());//付款开户银行
			vo.setPayBkNo(dto.getPayBkNo());//付款银行开户行号
			vo.setDueBkId(dto.getDueBkId());//收款银行账户ID(SYS_BK_ACC_INFO表ID、BANK_ACC_INFO表ID)
			vo.setDueAccNo(dto.getDueAccNo());//收款账户
			vo.setDueAccNm(dto.getDueAccNm());//收款户名
			vo.setDueBkNm(dto.getDueBkNm());//收款开户银行
			vo.setDueBkNo(dto.getDueBkNo());//收款银行开户行号
			vo.setCapAttrCd(dto.getCapAttrCd());//资金属性(CAP0027 ): 1.租赁人还款资金 2.垫款资金 3.回拨资金
			vo.setAdvRetTime(dto.getAdvRetTime());//实际垫款/回拨时间
			vo.setFundStsCd(dto.getFundStsCd());//资金垫款/回拨状态CAP0036： 1.未发送2.已发送 3.付款成功 4.付款失败5.已垫款6.已核销7.已作废
			vo.setRelFundId(dto.getRelFundId());//关联资金ID
			vo.setAdvRuleId(dto.getAdvRuleId());//垫款规则ID
			vo.setFundTypCd(dto.getFundTypCd());//资金生成方式CAP0037：1.自动 2.手动
			vo.setFundRem(dto.getFundRem());//备注
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setVersion(dto.getVersion());//版本
			vo.setAdvClAmt(dto.getAdvClAmt());//垫款冲销金额
			vo.setPayDt(dto.getPayDt());//应付时间
			vo.setPayAccTypCd(dto.getPayAccTypCd());
			vo.setDueAccTypCd(dto.getDueAccTypCd());
			vo.setBatchNo(dto.getBatchNo());//批次号（流水号）
			vo.setRuleNm(dto.getRuleNm());//垫款规则名称
			vo.setCapUseCost(dto.getCapUseCost());//付款金额
			vo.setDkId(dto.getDkId());//垫款id
            vo.setPaySchNo(dto.getPaySchNo());
            vo.setPayPd(dto.getPayPd());
			
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo CapAdvFundVO
	 * @return CapAdvFundDTO
	 */
	public static CapAdvFundDTO toDTO(CapAdvFundVO vo) {
		CapAdvFundDTO dto = null;
		if (vo != null) {
			dto = new CapAdvFundDTO();
			dto.setId(vo.getId());
			dto.setCode(vo.getCode());//资金编号（x） 垫款（DK+ID）冲销（HB+ID）
			dto.setBatchId(vo.getBatchId());//批次号（流水号）
			dto.setCstId(vo.getCstId());//客户ID
			dto.setCstNm(vo.getCstNm());//客户名称
			dto.setPayAmt(vo.getPayAmt());//金额
			dto.setPayBkId(vo.getPayBkId());//付款银行账户ID(SYS_BK_ACC_INFO表ID、BANK_ACC_INFO表ID)
			dto.setPayAccNo(vo.getPayAccNo());//付款账号
			dto.setPayAccNm(vo.getPayAccNm());//付款账户
			dto.setPayBkNm(vo.getPayBkNm());//付款开户银行
			dto.setPayBkNo(vo.getPayBkNo());//付款银行开户行号
			dto.setDueBkId(vo.getDueBkId());//收款银行账户ID(SYS_BK_ACC_INFO表ID、BANK_ACC_INFO表ID)
			dto.setDueAccNo(vo.getDueAccNo());//收款账户
			dto.setDueAccNm(vo.getDueAccNm());//收款户名
			dto.setDueBkNm(vo.getDueBkNm());//收款开户银行
			dto.setDueBkNo(vo.getDueBkNo());//收款银行开户行号
			dto.setCapAttrCd(vo.getCapAttrCd());//资金属性(CAP0027 ): 1.租赁人还款资金 2.垫款资金 3.回拨资金
			dto.setAdvRetTime(vo.getAdvRetTime());//实际垫款/回拨时间
			dto.setFundStsCd(vo.getFundStsCd());//资金垫款/回拨状态CAP0036： 1.未发送2.已发送 3.付款成功 4.付款失败5.已垫款6.已核销7.已作废
			dto.setRelFundId(vo.getRelFundId());//关联资金ID
			dto.setAdvRuleId(vo.getAdvRuleId());//垫款规则ID
			dto.setFundTypCd(vo.getFundTypCd());//资金生成方式CAP0037：1.自动 2.手动
			dto.setFundRem(vo.getFundRem());//备注
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setVersion(vo.getVersion());//版本
            dto.setAdvClAmt(vo.getAdvClAmt());//垫款冲销金额
            dto.setPayDt(vo.getPayDt());//应付时间
			dto.setPayAccTypCd(vo.getPayAccTypCd());
			dto.setDueAccTypCd(vo.getDueAccTypCd());
            
            dto.setBatchNo(vo.getBatchNo());//批次号（流水号）
            dto.setRuleNm(vo.getRuleNm());//垫款规则名称
            dto.setCapUseCost(vo.getCapUseCost());//付款金额
            dto.setDkId(vo.getDkId());//垫款id
            
            dto.setPaySchNo(vo.getPaySchNo());
            dto.setPayPd(vo.getPayPd());

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list List<CapAdvFund>
	 * @return List<CapAdvFundDTO>
	 */
	public static List<CapAdvFundVO> toVOList(List<CapAdvFundDTO> list) {
		List<CapAdvFundVO>  voList = new ArrayList<CapAdvFundVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CapAdvFundDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 *  VO集合 转 DTO集合
	 * @param list List<CapAdvFundVO>
	 * @return List<CapAdvFundDTO>
	 */
	public static List<CapAdvFundDTO> toDTOList(List<CapAdvFundVO> list) {
		List<CapAdvFundDTO>  dtoList = new ArrayList<>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CapAdvFundVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
